Qual a diferença entre trigger, function e procedure?

trigger procedure function

O tipo de ação que executam (funcionalidade), declaração, parâmetros, retorno, instruções de transação, tratamento de exceções, o modo e o momento que são chamadas.

Talvez você precise de mais conhecimento para saber do se tratam esses blocos de instruções. Para isso tem explicação prévia nos links abaixo.
 

Resumo das diferenças

Triggers: são disparadas automaticamente quando um evento no banco é executado, pode ser um update, insert ou delete. elas não retornam ou recebem parâmetros e executam ações no banco de dados.
Stored Procedures: precisam ser chamadas para executarem ações no banco de dados. Elas podem receber e retornar vários parâmetros além de fazer ações no banco de dados.
Functions: são chamadas para retornar valores que serão usadas no banco de dados, recebem apenas parâmetros de entrada e não executam ações diretamente.

Funcionalidade

Functions são usadas para retornar valores. Procedures e functions executam ações no banco de dados. Procedures também podem retornar valores.

Declaração

A declaração e a sintaxe de cada um é bem diferente e específica, podendo variar entre cada banco de dados.

Parâmetros

As procedures podem ter parâmetros de entrada e saída. As functions apenas de entrada são aceitas. As functions não recebem parâmetros.

Retorno

Functions servem para retornar valores. Procedures podem retornar um valor ou não. Triggers não retornam valores.

Instruções de transação

As instruções de transação como COMMIT, ROLLBACK e SAVEPOINT não são permitidas em triggers. Procedures aceitam todas elas e em functions elas não são necessárias.

Tratamento de exceções

Triggers e procedures permitem efectuar o tratamento de exceções, via try/catch. O mesmo não é possível em uma função.

Como são chamadas

Triggers são disparadas automaticamente após uma ação. As procedures e functions precisam ser declaradas para executar.

Quando são chamadas

Functions podem ser chamadas dentro de triggers e procedures. Procedures podem chamar elas mesmas ou triggers. 

Trigger

Funcionalidade 

Dispara uma ação após um insert, update ou delete no banco de dados, ou seja uma edição no banco de dados.

Declaração

É definido um nome a tabela a qual ela se aplica, se acontece antes ou depois da edição no banco de dados e depois a ação que será feita. 

Parâmetros

Não são aceitos.

Retorno 

Não tem.

Instruções de transação

Não são aceitas.

Como é chamada

As triggers são armazenadas na base de dados e são executados de acordo com outra ação como descrito nas funcionalidades. Não são chamadas sua execução depende de outra ação.

Quando é chamada

É chamado automaticamente sempre que ocorre um evento no banco de dados. Ou seja se estiver declarado para ele ser executada após um update, após uma edição do banco de dados ela irá executar.

Procedure 

Funcionalidade 

Funciona como uma programação no banco de dados, onde são declaradas as instruções e podem ser chamadas várias vezes.

Declaração

É declarado um cabeçalho e um corpo com o que será executado.

Retorno 

Pode retornar ou não um valor.

Instruções de transação

Todas as instruções de transação como COMMIT, ROLLBACK e SAVEPOINT são permitidas. 

Como é chamada 

Pode ser usando a palavra execute antes do nome da procedure, ou entre as palavras BEGIN e END.

Quando é chamada 

São acionadas pela aplicação

Functions 

Funcionalidade 

São usadas como parte de uma expressão, retornam um valor para ser usado junto com o select, insert, update ou bloco de instrução.

Declaração 

É declarado o nome da função seguida dos parâmetros, na sequência o tipo de retorno, depois a expressão que será executada e por último o retorno.

Retorno 

Sempre retornam um valor.

Instruções de transação

Não precisam pois não fazem permanência dos dados.

Parâmetros

Podem ser usados para entrada de informação.

Como é chamada

Pode ser inserida em uma variável, diretamente no select, ou como parte de uma procedure ou trigger.

Quando é chamada 

É usada como parte de um select ou para retornar uma informação que será usado.

Para saber mais, clique nos links abaixo.

Quais as semelhanças entre functions, triggers e procedures?
Quando devo utilizar uma functiom, trigger ou procedure?

Como fazer uma function?
Como fazer uma procedure?
Como fazer uma trigger?

Quer acompanhar as novidade do site?

Leia mais em:

Qual a diferença entre trigger, function e procedure?

Última atualização: 2023-02-15

Quer acompanhar as novidade do site?
Veja também:

Resumão dos principais assuntos para a prova do CRF-RS 2024 de acordo com o edital e provas relacionadas.

Principais assuntos prova CRF RS 2024

Como fazer uma função no mysql?

função mysql

Como remover caracteres especiais no mysql?

remover caracteres especiais mysql

Questão 12 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)

questão 12 PLSQL package

Como alterar nome da tabela no MySQL?

Alterar nome de tabela mysql

Como remover acentos e caracteres especiais em PHP?

Remover acentos e caracteres especiais com PHP

Web Stories